import request from '/@/utils/request';

/**
 * 获取字典数据列表
 * @param {string} dictType 字典类型
 * @returns {Promise} 请求的Promise对象
 */
export function getDictList(dictType) {
	return request({
		url: '/admin/system/dict/data/type/' + dictType,
		method: 'get',
	});
}

/**
 * 获取字典类型列表
 * @param {Object} params 查询参数
 * @returns {Promise} 请求的Promise对象
 */
export function getDictTypes(params) {
	return request({
		url: '/admin/system/dict/type/list',
		method: 'get',
		params,
	});
}

/**
 * 获取字典项列表
 * @param {Object} params 查询参数
 * @returns {Promise} 请求的Promise对象
 */
export function getDictItems(params) {
	return request({
		url: '/admin/system/dict/data/list',
		method: 'get',
		params,
	});
}

/**
 * 新增字典类型
 * @param {Object} data 字典类型数据
 * @returns {Promise} 请求的Promise对象
 */
export function addDictType(data) {
	return request({
		url: '/admin/system/dict/type',
		method: 'post',
		data,
	});
}

/**
 * 更新字典类型
 * @param {Object} data 字典类型数据
 * @returns {Promise} 请求的Promise对象
 */
export function updateDictType(data) {
	return request({
		url: '/admin/system/dict/type',
		method: 'put',
		data,
	});
}

/**
 * 新增字典项
 * @param {Object} data 字典项数据
 * @returns {Promise} 请求的Promise对象
 */
export function addDictItem(data) {
	return request({
		url: '/admin/system/dict/data',
		method: 'post',
		data,
	});
}

/**
 * 更新字典项
 * @param {Object} data 字典项数据
 * @returns {Promise} 请求的Promise对象
 */
export function updateDictItem(data) {
	return request({
		url: '/admin/system/dict/data',
		method: 'put',
		data,
	});
}

/**
 * 删除字典类型
 * @param {string|number} dictId 字典类型ID
 * @returns {Promise} 请求的Promise对象
 */
export function deleteDictType(dictId) {
	return request({
		url: `/admin/system/dict/type/${dictId}`,
		method: 'delete',
	});
}

/**
 * 删除字典项
 * @param {string|number} dictCode 字典项代码
 * @returns {Promise} 请求的Promise对象
 */
export function deleteDictItem(dictCode) {
	return request({
		url: `/admin/system/dict/data/${dictCode}`,
		method: 'delete',
	});
}
